Static Detection of Deadlocks in Erlang

نویسندگان

  • Maria Christakis
  • Konstantinos Sagonas
چکیده

We address the problem of detecting two different kinds of possible deadlocks in Erlang programs using static analysis. Our analysis is completely automatic, fast and effective in detecting deadlocks while avoiding most false alarms. We have integrated our analysis in dialyzer, a widely used tool for detecting software defects in Erlang programs, and demonstrate its effectiveness on open-source libraries and applications of considerable size. Despite the fact that most of these applications have been used over a long period of time and are reasonably well-tested, our analysis has detected a number of previously unknown deadlocks in their code that may have devastating effects at runtime.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Towards a Deadlock Analysis for Erlang Programs

We argue that there is a need for automated veri cation of absence of deadlocks in concurrent programs. We brie y describe how absence of deadlocks can be showed, in general, for a program, how the necessary information can be gathered, and the use of formal methods. We discuss timeouts as a method of run-time deadlock detection, and why they remain necessary in some situations, and we suggest ...

متن کامل

Towards a Deadlock Analysis for Erlang Programs 1

We argue that there is a need for automated veri cation of absence of deadlocks in concurrent programs. We brie y describe how absence of deadlocks can be showed, in general, for a program, how the necessary information can be gathered, and the use of formal methods. We discuss timeouts as a method of run-time deadlock detection, and why they remain necessary in some situations, and we suggest ...

متن کامل

Static Detection of Race Conditions in Erlang

We address the problem of detecting some commonly occurring kinds of race conditions in Erlang programs using static analysis. Our analysis is completely automatic, fast and scalable, and avoids false alarms by taking language characteristics into account. We have integrated our analysis in dialyzer, a commonly used tool for detecting software defects in Erlang programs which is part of Erlang/...

متن کامل

Detecting Potential Deadlocks with Static Analysis and Run-Time Monitoring

Concurrent programs are notorious for containing errors that are difficult to reproduce and diagnose. A common kind of concurrency error is deadlock, which occurs when a set of threads is blocked each trying to acquire a lock held by another thread in that set. Static and dynamic (run-time) analysis techniques exist to detect deadlocks. Havelund’s GoodLock algorithm detects potential deadlocks ...

متن کامل

Model Checking Erlang Programs - LTL-Propositions and Abstract Interpretation

Frank Huch Christian-Albrechts-University of Kiel,Germany [email protected] Abstract: We present an approach for the formal verification of Erlang programs using abstract interpretation and model checking. In previous work we defined a framework for the verification of Erlang programs using abstract interpretation and LTL model checking. The application of LTL model checking yields som...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2011